/**
 * 文件名：@UrlSuffixViewNameResolver.java <br/>
 * 包名：cn.efunbox.afw.web.mvc.view <br/>
 * 项目名：afw-web <br/>
 * @author xtwin <br/>
 */
package cn.efunbox.afw.web.mvc.view;

import javax.servlet.http.HttpServletRequest;

/**
 * 类名：UrlSuffixViewNameResolver  <br />
 *
 * 功能：从请求后缀中解析视图名称
 *
 * @author xtwin <br />
 * 创建时间：2016年8月4日 下午11:12:21  <br />
 * @version 2016年8月4日
 */
public class UrlSuffixViewNameResolver implements ViewNameResolver {
	
	// 视图名分隔符
	protected String separator = ".";

	/**
	 * 功能: <br/>
	 * 
	 * 重写：xtwin <br/>
	 * 
	 * @version ：2016年8月4日 下午11:12:34<br/>
	 * 
	 * @param request
	 * @param response
	 * @param handler
	 * @return
	 * @throws Exception <br/>
	 * @see cn.efunbox.afw.web.mvc.view.ViewNameResolver#resolve(javax.servlet.http.HttpServletRequest)
	 */
	@Override
	public String resolve(HttpServletRequest request) throws Exception {
		String uri = request.getRequestURI();
		
		// 取得最后一个路径分隔符位置
		int index = uri.lastIndexOf('/');
		
		// 取得最后一部分路径
		if (index != -1) {
			uri = uri.substring(index + 1);
		}
		
		// 检查分隔符后的内容
		index = uri.lastIndexOf(separator);
		
		if (index != -1) {
			// 解析出视图后面的部分
			return uri.substring(index + separator.length());
		}
		
		// 没有解析到后缀名
		return null;
	}

	/**
	 * @version 2016年8月4日-下午11:20:31
	 */
	public void setSeparator(String separator) {
		this.separator = separator;
	}
}